﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CommonLibrary
{
    public class StringExt
    {
        /// <summary>
        /// ReverseString - Hàm đảo ngược 1 chuỗi string
        /// </summary>
        /// <param name="strInput">ThangNM</param>
        /// <returns>MNgnahT</returns>
        public static string ReverseString(string strInput)
        {
            char[] arr = strInput.ToCharArray();
            Array.Reverse(arr);
            return new string(arr);
        }


        /// <summary>
        /// SplitByLength Cắt nhỏ chuỗi ra thành 1 list<string> theo 1 độ dài quy định
        /// </summary>
        /// <param name="str"></param>
        /// <param name="maxLength"></param>
        /// <returns></returns>
        public static List<string> SplitByLength(string strInput, int maxLength)
        {
            List<string> a = new List<string>();
            for (int i = 0; i < strInput.Length; i += maxLength)
            {
                if ((i + 3) < strInput.Length)
                    a.Add(strInput.Substring(i, 3));
                else
                    a.Add(strInput.Substring(i));
            }
            return a;
        }

        /// <summary>
        /// SplitByLengthEnum Cắt nhỏ chuỗi ra thành 1 Enum theo 1 độ dài quy định
        /// </summary>
        /// <param name="str"></param>
        /// <param name="maxLength"></param>
        /// <returns></returns>
        public static IEnumerable<string> SplitByLengthEnum(string str, int maxLength)
        {
            for (int index = 0; index < str.Length; index += maxLength)
            {
                yield return str.Substring(index, Math.Min(maxLength, str.Length - index));
            }
        }
                
    }
}
